package com.ruoyi.system.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 桌台次卡规则配置对象 table_pass_card_rules
 *
 * @author ruoyi
 * @date 2025-05-22
 */
public class TablePassCardRules extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 规则记录唯一标识符（自增主键，用于关联业务流水） */
    private Long id;

    /** 门店名称（如"北京朝阳店"） */
    @Excel(name = "门店名称")
    private String storeName;

    /** 门店唯一编号（如"BJ-CY-001"，需保证全局唯一） */
    @Excel(name = "门店唯一编号")
    private String storeCode;

    /** 当前在用桌台次卡数量（实时记录已激活未核销的次卡总量） */
    @Excel(name = "当前在用桌台次卡数量", readConverterExp = "实=时记录已激活未核销的次卡总量")
    private Long activePassCount;

    /** 次卡产品名称（如"周末畅玩10次卡"） */
    @Excel(name = "次卡产品名称")
    private String passCardName;

    /** 次卡规则说明（如"单次使用限4小时，节假日通用"） */
    @Excel(name = "次卡规则说明")
    private String passCardDescription;

    /** 次卡有效期（单位：天，0表示长期有效） */
    @Excel(name = "次卡有效期", readConverterExp = "单=位：天，0表示长期有效")
    private Long passCardValidityDays;

    /** 单次卡最大并发使用数（如限制1张次卡同时仅1桌可用） */
    @Excel(name = "单次卡最大并发使用数", readConverterExp = "如=限制1张次卡同时仅1桌可用")
    private Long maxConcurrentUsage;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setStoreName(String storeName)
    {
        this.storeName = storeName;
    }

    public String getStoreName()
    {
        return storeName;
    }

    public void setStoreCode(String storeCode)
    {
        this.storeCode = storeCode;
    }

    public String getStoreCode()
    {
        return storeCode;
    }

    public void setActivePassCount(Long activePassCount)
    {
        this.activePassCount = activePassCount;
    }

    public Long getActivePassCount()
    {
        return activePassCount;
    }

    public void setPassCardName(String passCardName)
    {
        this.passCardName = passCardName;
    }

    public String getPassCardName()
    {
        return passCardName;
    }

    public void setPassCardDescription(String passCardDescription)
    {
        this.passCardDescription = passCardDescription;
    }

    public String getPassCardDescription()
    {
        return passCardDescription;
    }

    public void setPassCardValidityDays(Long passCardValidityDays)
    {
        this.passCardValidityDays = passCardValidityDays;
    }

    public Long getPassCardValidityDays()
    {
        return passCardValidityDays;
    }

    public void setMaxConcurrentUsage(Long maxConcurrentUsage)
    {
        this.maxConcurrentUsage = maxConcurrentUsage;
    }

    public Long getMaxConcurrentUsage()
    {
        return maxConcurrentUsage;
    }

    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("storeName", getStoreName())
                .append("storeCode", getStoreCode())
                .append("activePassCount", getActivePassCount())
                .append("passCardName", getPassCardName())
                .append("passCardDescription", getPassCardDescription())
                .append("passCardValidityDays", getPassCardValidityDays())
                .append("maxConcurrentUsage", getMaxConcurrentUsage())
                .append("updateTime", getUpdateTime())
                .append("phone", getPhone())
                .toString();
    }
}
